KEYCLOAK_AUTHENTICATIONFLOWS = [
    {
        "id": "c49c07cc-8692-4fc5-83b9-9218c142d5a5",
        "alias": "PLEASE-OPEN.IT-browser-with-ip-filtering",
        "description": "browser based authentication",
        "providerId": "basic-flow",
        "topLevel": True,
        "builtIn": False,
        "authenticationExecutions": [
            {
                "authenticatorConfig": "configuration-imported",
                "authenticator": "POIT-auth-IP-range",
                "authenticatorFlow": False,
                "requirement": "DISABLED",
                "priority": 0,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticatorFlow": True,
                "requirement": "REQUIRED",
                "priority": 1,
                "autheticatorFlow": True,
                "flowAlias": "PLEASE-OPEN.IT-auth-browser",
                "userSetupAllowed": False,
            },
        ],
    },
    {
        "id": "cea26eb6-3db0-4f71-8b8d-ed50bee159e7",
        "alias": "PLEASE-OPEN.IT-direct-grant-with-ip-filtering",
        "description": "OpenID Connect Resource Owner Grant",
        "providerId": "basic-flow",
        "topLevel": True,
        "builtIn": False,
        "authenticationExecutions": [
            {
                "authenticatorConfig": "configuration-imported-direct-grant",
                "authenticator": "POIT-auth-IP-range",
                "authenticatorFlow": False,
                "requirement": "DISABLED",
                "priority": 10,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "direct-grant-validate-username",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 20,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "direct-grant-validate-password",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 30,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticatorFlow": True,
                "requirement": "CONDITIONAL",
                "priority": 31,
                "autheticatorFlow": True,
                "flowAlias": "PLEASE-OPEN.IT-direct-grant-with-ip-filtering Direct Grant - Conditional OTP",
                "userSetupAllowed": False,
            },
        ],
    },
    {
        "id": "74c5407a-16c5-4da4-bd32-4be2d1d5b133",
        "alias": "browser",
        "description": "Browser based authentication",
        "providerId": "basic-flow",
        "topLevel": True,
        "builtIn": True,
        "authenticationExecutions": [
            {
                "authenticator": "auth-cookie",
                "authenticatorFlow": False,
                "requirement": "ALTERNATIVE",
                "priority": 10,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "auth-spnego",
                "authenticatorFlow": False,
                "requirement": "DISABLED",
                "priority": 20,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "identity-provider-redirector",
                "authenticatorFlow": False,
                "requirement": "ALTERNATIVE",
                "priority": 25,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticatorFlow": True,
                "requirement": "ALTERNATIVE",
                "priority": 26,
                "autheticatorFlow": True,
                "flowAlias": "Organization",
                "userSetupAllowed": False,
            },
            {
                "authenticatorFlow": True,
                "requirement": "ALTERNATIVE",
                "priority": 30,
                "autheticatorFlow": True,
                "flowAlias": "forms",
                "userSetupAllowed": False,
            },
        ],
    },
    {
        "id": "f8adec1b-aaa0-4643-93f3-40ab566da80a",
        "alias": "direct grant",
        "description": "OpenID Connect Resource Owner Grant",
        "providerId": "basic-flow",
        "topLevel": True,
        "builtIn": True,
        "authenticationExecutions": [
            {
                "authenticator": "direct-grant-validate-username",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 10,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "direct-grant-validate-password",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 20,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticatorFlow": True,
                "requirement": "CONDITIONAL",
                "priority": 30,
                "autheticatorFlow": True,
                "flowAlias": "Direct Grant - Conditional OTP",
                "userSetupAllowed": False,
            },
        ],
    },
    {
        "id": "d2dbe1bd-943d-45e7-a55f-374552c5baae",
        "alias": "registration",
        "description": "Registration flow",
        "providerId": "basic-flow",
        "topLevel": True,
        "builtIn": True,
        "authenticationExecutions": [
            {
                "authenticator": "registration-page-form",
                "authenticatorFlow": True,
                "requirement": "REQUIRED",
                "priority": 10,
                "autheticatorFlow": True,
                "flowAlias": "registration form",
                "userSetupAllowed": False,
            }
        ],
    },
    {
        "id": "9c02b2af-9c30-4663-a762-1628c21ccd94",
        "alias": "reset credentials",
        "description": "Reset credentials for a user if they forgot their password or something",
        "providerId": "basic-flow",
        "topLevel": True,
        "builtIn": True,
        "authenticationExecutions": [
            {
                "authenticator": "reset-credentials-choose-user",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 10,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "reset-credential-email",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 20,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "reset-password",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 30,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticatorFlow": True,
                "requirement": "CONDITIONAL",
                "priority": 40,
                "autheticatorFlow": True,
                "flowAlias": "Reset - Conditional OTP",
                "userSetupAllowed": False,
            },
        ],
    },
    {
        "id": "61de8895-6cb5-446d-b658-3ce4c144ebac",
        "alias": "clients",
        "description": "Base authentication for clients",
        "providerId": "client-flow",
        "topLevel": True,
        "builtIn": True,
        "authenticationExecutions": [
            {
                "authenticator": "client-secret",
                "authenticatorFlow": False,
                "requirement": "ALTERNATIVE",
                "priority": 10,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "client-jwt",
                "authenticatorFlow": False,
                "requirement": "ALTERNATIVE",
                "priority": 20,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "client-secret-jwt",
                "authenticatorFlow": False,
                "requirement": "ALTERNATIVE",
                "priority": 30,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "client-x509",
                "authenticatorFlow": False,
                "requirement": "ALTERNATIVE",
                "priority": 40,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
        ],
    },
    {
        "id": "1c21eaf4-2de2-4c5e-9f0c-51fcd88eafbd",
        "alias": "first broker login",
        "description": "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account",
        "providerId": "basic-flow",
        "topLevel": True,
        "builtIn": True,
        "authenticationExecutions": [
            {
                "authenticatorConfig": "review profile config",
                "authenticator": "idp-review-profile",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 10,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticatorFlow": True,
                "requirement": "REQUIRED",
                "priority": 20,
                "autheticatorFlow": True,
                "flowAlias": "User creation or linking",
                "userSetupAllowed": False,
            },
            {
                "authenticatorFlow": True,
                "requirement": "CONDITIONAL",
                "priority": 50,
                "autheticatorFlow": True,
                "flowAlias": "First Broker Login - Conditional Organization",
                "userSetupAllowed": False,
            },
        ],
    },
    {
        "id": "b88a06aa-1647-4e7d-816b-98a65e0a1faf",
        "alias": "docker auth",
        "description": "Used by Docker clients to authenticate against the IDP",
        "providerId": "basic-flow",
        "topLevel": True,
        "builtIn": True,
        "authenticationExecutions": [
            {
                "authenticator": "docker-http-basic-authenticator",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 10,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            }
        ],
    },
    {
        "id": "5675abd4-4822-4c0e-a38a-1a9ea9688ef3",
        "alias": "wrong-worflow",
        "description": "Bad worflow for tests purpose",
        "providerId": "basic-flow",
        "topLevel": True,
        "builtIn": False,
        "authenticationExecutions": [
            {
                "authenticator": "auth-cookie",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 0,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "auth-spnego",
                "authenticatorFlow": False,
                "requirement": "REQUIRED",
                "priority": 1,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "webauthn-authenticator",
                "authenticatorFlow": False,
                "requirement": "ALTERNATIVE",
                "priority": 2,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
            {
                "authenticator": "auth-conditional-otp-form",
                "authenticatorFlow": False,
                "requirement": "ALTERNATIVE",
                "priority": 3,
                "autheticatorFlow": False,
                "userSetupAllowed": False,
            },
        ],
    },
]
